﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TeamCommunitySolution.Domain.DataLayer.TeamEvents;

namespace TeamCommunitySolution.Repositories.TeamEvents
{
    /// <summary>
    /// Team Evbent Repository.
    /// </summary>
    public interface TeamEventRepository
    {
        /// <summary>
        /// Saves the team event.
        /// </summary>
        /// <param name="teamEvent">The team event.</param>
        void SaveTeamEvent(ref TeamEvent teamEvent);

        /// <summary>
        /// Gets the team event by field.
        /// </summary>
        /// <param name="fieldName">The field name.</param>
        /// <param name="fieldValue">The field value.</param>
        /// <returns>Instance of the team event.</returns>
        TeamEvent GetTeamEventByField(string fieldName, string fieldValue);

        /// <summary>
        /// Gets the team event invite by field.
        /// </summary>
        /// <param name="fieldName">Name of the field.</param>
        /// <param name="fieldValue">The field value.</param>
        /// <returns>Specified Team Invite</returns>
        TeamEventInvite GetTeamEventInviteByField(string fieldName, string fieldValue);

        /// <summary>
        /// Saves the team event invite.
        /// </summary>
        /// <param name="invite">The invite.</param>
        void SaveTeamEventInvite(TeamEventInvite invite);
    }
}
